In computing environments, virtual switches may be used that comprise software modules capable of providing a communication platform for one or more virtual nodes in the computing environment. These virtual switches may be used to intelligently direct communication on the network by inspecting packets before passing them to other nodes on the same network. For example, packets may be inspected to determine the source and destination internet protocol (IP) addresses to determine if the communication is permitted to be delivered to the destination computing node. In some implementations, virtual switches may be configured with flow processes that can include one or more flow operations, or tables, that define rules and actions to be taken against a packet. These flow operations identify specific attributes, such as IP addresses, media access control (MAC) addresses, and the like, within the data packet and, when identified, provide a set of actions to be asserted against the data packet. These actions may include modifications to the data packet, forwarding rules for the data packet, amongst other possible operations.
To manage the virtual switches, a virtual switch controller may be provided that is used to separate the control plane from the data plane of a computing network. These virtual switch controllers are used to define rules, or control mechanisms that direct a packet when it is received by the virtual switch. In some implementations, this routing may include defining which nodes are part of which networks, which security mechanisms are to be placed on communicating packets, or some other control mechanism with respect to the data plane of the virtual switch.
Although the virtual switch controllers are responsible for configuring the data plane forwarding on the virtual switch, difficulties often arise when the controller is initially started or rebooted. In particular, the controller often must identify characteristics of the current configuration for a virtual switch, and the corresponding virtual nodes connected thereto, before new configuration parameters may be passed to the virtual switch. However, difficulties arise as different characteristics of the current switch configuration may be identified at different times. This can lead to the controller improperly identifying a configuration for the switch, or waiting an unnecessary length of time to identify the current configuration of the switch.